6、时间显示

题目 时间显示

image-097f3da5

思路分析

不知道一秒等于多少毫秒 直接寄

image-37732bdc

发现无需知道是哪天 只要做模即可

把给定的数 先模上86400000得到在那一天已经过了的毫秒数

然后把这个数除以3600000得到小时数

模上3600000 得到剩下的毫秒数

再除以60000得到分钟数

模上600000得到剩下的毫秒数

除以1000得到秒数

第一个案例:46800999

image-d98eb47d

13:00:00

第二个案例:1618708103123

image-ad177582

没问题 然后考虑一下数据范围问题 再来敲代码

取的都是整数 没涉及到小数 所以整型可以

然后数据最大说是$10^{18} $ int 10位 long long 19位 所以这题long long 可以解决

开搞!

md这题写了半个小时 简单但是要细心 不能被吓到

代码实现

#include<bits/stdc++.h>

using namespace std;

typedef long long LL;

int main()

{

	LL alltime;

	cin>>alltime;

//	LL curday=alltime/86400000;//天数

	LL dayremain=alltime%86400000;

	LL curhour=dayremain/3600000; //cout<<curhour<<" ";

	LL hourremain=dayremain%3600000;

	LL curminute=hourremain/60000; //cout<<curminute<<" ";

	LL minuteremain=hourremain%60000;

	LL cursecond=minuteremain/1000; //cout<<cursecond<<" ";

	printf("%02d:%02d:%02d",curhour,curminute,cursecond);

	return 0;

 }

同类题型

视频讲解


⬅️ 5、路径 🏠 00-刷题理模型 ➡️ 7、砝码称重